package com.yunxin.core.application.command.merchant;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;

/**
 * @author zero°
 * @since 2023-05-27
 */
@Data
@Schema(description = "新增商户对象")
public class AddMerchantCommand implements Serializable {
    /**
     * 商户名称
     */
    @Schema(description = "商户名称")
    @NotBlank(message = "商户名称不能为空")
    private String merchantName;

    /**
     * 商户类型 1.个人 2.企业
     */
    @Schema(description = "商户类型 1.个人 2.企业")
    @NotNull(message = "商户类型不能为空")
    private Integer merchantType;
    /**
     * 打款账户
     */
    @Schema(description = "打款账户")
    @NotBlank(message = "打款账户不能为空")
    private String debitAccount;
    /**
     * 统一信用社会代码
     */
    @Schema(description = "统一信用社会代码")
    @NotBlank(message = "统一信用社会代码不能为空")
    private String unifiedCreditSocialCode;
    /**
     * 营业执照图片地址
     */
    @Schema(description = "营业执照图片地址")
    @NotBlank(message = "营业执照图片地址不能为空")
    private String businessLicense;
    /**
     * 负责人
     */
    @Schema(description = "负责人")
    @NotBlank(message = "负责人不能为空")
    private String responsiblePerson;
    /**
     * 负责人手机
     */
    @Schema(description = "负责人手机")
    @NotBlank(message = "负责人手机不能为空")
    private String responsiblePersonPhone;
    /**
     * 微信号
     */
    @Schema(description = "微信号")
    private String wechatNumber;
    /**
     * 邮箱
     */
    @Schema(description = "邮箱")
    private String mail;
    /**
     * 企业通讯地址
     */
    @Schema(description = "企业通讯地址")
    private String mailAddress;
    /**
     * 对接人
     */
    @Schema(description = "对接人")
    private MerchantContactPersonCommand merchantContactPerson;
    /**
     * 发票信息
     */
    @Schema(description = "发票信息")
    private MerchantInvoiceCommand merchantInvoice;

    /**
     * 创建人
     */
    @Schema(hidden = true)
    private String creator;
}
